Praca z zadaniami zatwierdzania w Dataverse
Table of Contents
Ten post jest inspirowany niedawnymi prelekcjami, które miałem okazję wygłosić. Opiszę w nim szczegółowo, jak zorganizowane są zadania w Microsoft Dataverse i co możemy z nimi zrobić.
Podstawy
Zadania zatwierdzania Power Automate i Microsoft Teams są przechowywane w Microsoft Dataverse. Baza danych związana jest ze środowiskiem, w którym tworzone jest zadanie.
Dobrze wiedzieć! Zadania są zawsze przechowywane w środowisku Microsoft Dataverse, w którym są tworzone. Dlatego na dzień dzisiejszy nie ma dostępnego „jednego miejsca, w którym można zarządzać wszystkimi zadaniami”.
- Flow approval – przechowuje podstawowe informacje o każdym zatwierdzeniu, np. kiedy zostało utworzone i przez kogo. Ponadto w przypadku, gdy zostało utworzone przez akcję, która również czeka na zatwierdzenie, przechowuje Flow Notification URI, który służy następnie do zakończenia oczekiwania akcji,
- User – w Dataverse wszystkie obiekty użytkowników są przechowywane w tej tabeli, jest ona synchronizowana z listą użytkowników, którzy mają dostęp do środowiska, która z kolei jest synchronizowana z Azure AD,
- Approval – nagłówek każdego z zadań. Przechowuje nazwę zadania, żądającego, szczegóły zatwierdzenia,
- Approval request – przechowuje informacje o każdym pojedynczym zadaniu wygenerowanym do zatwierdzenia (im więcej przypisanych zatwierdzających, tym więcej zadań),
- Approval response – przechowuje informacje o każdym zakończonym zadaniu, m. in. wynik zatwierdzania.
Teraz znamy już podstawy. Za każdym razem, gdy zadanie jest tworzone w Power Automate lub Microsoft Teams, proces tworzy wpisy w tabelach Flow Approval, Approval i Approval Request. Dalej znajdziesz informacje, co właściwie jest tworzone w każdym z możliwych scenariuszy pracy z zadaniami.
Tworzenie zadania
Z każdym nowym zadaniem tworzone są dane w 3 tabelach:
- Approval
- Approval – autogenerowane ID
- Allow Reassign – boolean
- Approval Model Id i Approval Stage – taka sama wartość jak Approval
- Created By – kto stworzył zadanie
- Created On – timestamp
- Details – szczegóły zadania w notacji markdown
- Modified By – domyślnie user, który stworzył zadanie
- Modified On – taka sama data, jak stworzenia
- Owner – znów, user który stworzył zadanie
- Send Email Notifications – boolean
- Stage – Basic
- Status – Active
- Status Reason – Pending
- Title – tytuł zadania
- Flow approval
- Flow Approval – identyfikator wygenerowany dla Approval, w tabeli Approval
- Created By – Microsoft Flow
- Created On – timestamp
- Flow Id – guid flow id, używany wewnętrznie
- Flow Name – guid procesu, gdzie task został stworzony
- Flow Notification URI – URL, który wywołany (POST) kończy czekającą akcję
- Flow Run Sequence Id – ID instancji procesu, która utworzyła zadanie
- Modified By – to samo co Created By
- Modified On – to samo co Created On
- Owner – kto utworzył zadanie
- Send Flow Email Notification – boolean
- Send Flow Push Notification – boolean
- Status – Active
- Status Reason – Created lub WaitingForApproval (jeśli akcja czeka na zakończenie)
- Approval Request
- Approval Request – autogenerowane id
- Allow Reassignment – boolean
- Approval Id Index – identyfikator Approval, wygenerowany w tabeli Approval
- Approval Stage – jak powyżej
- Created By – kto utworzył zadanie
- Created On – timestamp
- Last Notified On – jeśli notyfikacja o zadaniu została wysłana – kiedy
- Modified By – ta sama wartość co Created By
- Modified On – ta sama wartość co Created On
- Owner – kto utworzył zadanie
- Response options – lista z możliwymi wynikami zadania
- Stage – Basic
- Stage Index – Basic
- Status – Active
- Status Reason – Active
Wiele pól do ustawienia, ale większość z nich jest aktualizowana automatycznie na podstawie połączenia używanego do tworzenia rekordów w Dataverse (w akcji Assign Task).
Wskazówka! W tabeli Flow Approval dla zatwierdzeń wygenerowanych z akcjami, które czekają na zakończenie, możesz znaleźć linki w kolumnie Flow Notification URI
. Adres URL jest zbudowany z następujących składowych (większość z nich pochodzi z innych kolumn tabeli Flow Approval):
https://[instancja].westeurope.logic.azure.com/workflows/[Flow Id]/runs/[Flow Run Sequence Id]/actions/[Nazwa akcji czekającej na zakończenie]/run?api-version=2016-06-01&sp=%2Fruns%2F[Flow Run Sequence Id]%2Factions%2F[
Nazwa akcji czekającej na zakończenie
]%2Frun%2C%2Fruns%2F[Flow Run Sequence Id]%2Factions%2F[Nazwa akcji czekającej na zakończenie
]%2Fread&sv=1.0&sig=[klucz podpisujący żądanie]
Co więcej, wraz z POST, możesz przesłać dowolną treść, więc po prostu przekaż wszystkie potrzebne informacje po zakończeniu oczekiwania (takie jak wynik, komentarze itp.).
Kończenie zadania
- Approval
- Completed On – timestamp
- Modified On – timestamp
- Modified By – kto zakończył zadanie
- Result – string, wynik zadania
- Stage – Complete
- Status – Inactive
- Status Reason – Completed
- Flow Approval
- Brak zmian, jeśli flow nie czeka na zakończenie zadania, jeśli jednak czeka:
- Status – Inactive
- Status Reason – Completed
- Approval Request
- No changes
- Approval Response
- Approval Response – autogenerowany identifier
- Approval Id Index – identyfikator Approval wygenerowany w tabeli Approval
- Approval Stage – jak powyżej
- Comments – komentarz zapisany wraz z zakończonym zadaniem
- Created By – Microsoft Flow
- Created On – timestamp
- Modified By – Microsoft Flow
- Modified On – timestamp
- Owner – kto zakończył zadanie
- Response – wynik zadania
- Stage – Basic
- Stage Index – Basic
- Status – Inactive
- Status Reason – Committed
Przepisane zadania na innego zatwierdzającego
W tym scenariuszu jedyna zmiana, jaka ma miejsce, znajduje się w tabeli Approval Request:
- Oryginalne zadanie
- Status – Inactive
- Status Reason – Reassigned
- Nowy wpis
- Wszystkie informacje takie same jak w przypadku tworzenia nowego zadnia plus:
- Reassigned From – identyfikator oryginalnego zadania z tabeli Approval Request
Ważne! Podczas przepisywania zadań pamiętaj o przestrzeganiu zasad:
1. Użytkownicy nie mogą ponownie przydzielać zadań nieprzypisanych do siebie,
2. Użytkownicy nie mogą ponownie przypisać do siebie,
3. Użytkownicy nie mogą ponownie przypisać do twórcy zadania.
Anulowanie zadania
- Approval
- Result – Canceled
- Stage – Complete
- Status – Inactive
- Status Reason – Canceled
- Flow Approval
- Brak zmian, jeśli flow nie czeka na zakończenie zadania, jeśli jednak czeka:
- Status – Inactive
- Status Reason – Completed
I to wszystko. Mam nadzieję, że te informacje będą naprawdę przydatne podczas Twojej pracy z zadaniami poza podstawowym interfejsem użytkownika w Power Automate lub Microsoft Teams.